package com.fg.cloud.manager.mapper.order;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.BaseEntity;
import com.fg.cloud.manager.entry.order.OrderInfoEntity;
import com.fg.cloud.manager.entry.order.OrderPaymentEntity;
import com.fg.cloud.manager.entry.order.vo.OrderDetailVo;
import com.fg.cloud.manager.mapper.BaseMapper;

/**
  * Description:订单mapper
  * @author liushengchao
  * @date 2017年8月21日下午6:44:05
 */
public interface OrderInfoMapper extends BaseMapper{
	
	
	/**
	  * Description:更新待付金额
	  * @param orders
	  * @return
	  * @author shaoqiping
	  * @date 2017年9月8日下午5:49:36
	*/
	int updateNeedPay(@Param("orders") List<OrderInfoEntity> orders);
	/**
	  * Description:订单列表及高级搜索
	  * @param pageInfo 搜索条件
	  * @param search 搜索框输入的搜索条件
	  * @return 订单列表
	  * @author liushengchao
	  * @date 2017年8月25日上午10:33:42
	 */
	public List<BaseEntity> findList(@Param("pageInfo")PageUtils<BaseEntity> pageInfo,@Param("search")String search,
			@Param("areaId")Long areaId,@Param("areaNumber")String areaNumber,@Param("statusStr")String statusStr,@Param("areaNumberList")List<String>areaNumberList);
	
	/**
	 * Description:查询结果条数
	 * @param pageInfo 查询条件
	 * @param search
	 * @author liushengchao
	 * @date  2017年9月1日上午11:56:50
	 */
	public int filterCount(@Param("pageInfo")PageUtils<BaseEntity> pageInfo,@Param("search")String search,
			@Param("areaId")Long areaId,@Param("areaNumber")String areaNumber,@Param("statusStr")String statusStr,@Param("areaNumberList")List<String>areaNumberList);
	
	/**
	 * Description:订单审核
	 * @param orderStatus 审核后状态
	 * @param ids 需审核的订单ID
	 * @author liushengchao
	 * @date  2017年9月1日上午11:58:45
	 */
	public int checkOrder(@Param("orderStatus")int orderStatus , @Param("ids")String[] ids);
	
	/**
	 * Description:业务反审核操作
	 * @param reamrk 反审核原因
	 * @param ids 订单ID集合
	 * @author liushengchao
	 * @date  2017年9月4日下午2:48:27
	 */
	public int reverseOrder(@Param("ids")String[] ids,@Param("remark")String remark );
	
	/**
	 * Description:逻辑删除订单
	 * @param ids 订单ID集合
	 * @author liushengchao
	 * @date  2017年9月4日下午2:49:38
	 */
	public int delOrder(@Param("ids")String[] ids);
	
	/**
	 * Description:查询订单头，分页，自定义传参(1)
	 * @param pageinfo
	 * @return
	 * @author around
	 * @date 2017年9月6日下午10:12:52
	 */
	long findCountByOrderInfo(PageUtils<OrderInfoEntity> pageinfo);
	
	/**
	 * Description:查询订单头数据(2)
	 * @param pageinfo
	 * @return
	 * @author around
	 * @date 2017年9月6日下午10:14:01
	 */
	List<OrderInfoEntity> findByOrderInfo(PageUtils<OrderInfoEntity> pageinfo);
	
	/**
	  * Description:查询未付款完成的订单
	  * @param facId
	  * @param ageId
	  * @return
	  * @author shaoqiping
	  * @date 2017年9月8日下午3:22:21
	*/
	List<OrderPaymentEntity> selectUnfinished(@Param("facId")Long facId,@Param("ageId")Long ageId);
	
	int cancelOrder(@Param("ids")String[] ids,@Param("remark")String remark );
	
	long delByFacId(@Param("facId")Long facId);
	
	long delOrderFile(@Param("facId")Long facId);
	
	List<OrderDetailVo> findProductForOrderCopy(@Param("tableName")String tableName,@Param("skuIds")List<String> skuIds
			,@Param("ageId")Long ageId);
}
